package com.ruoyi.cat.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 用户信息对象 cat_userbasic_table
 * 
 * @author ruoyi
 * @date 2024-12-24
 */
public class CatUserbasicTable extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** $column.columnComment */
    private Long id;

    /** 用户头像 */
    @Excel(name = "用户头像")
    private String profileImg;

    /** 用户昵称 */
    @Excel(name = "用户昵称")
    private String nickName;

    /** 0男 1女 2未知 */
    @Excel(name = "0男 1女 2未知")
    private String gender;

    /** 用户电话 */
    @Excel(name = "用户电话")
    private String phone;

    /** 所在地区 */
    @Excel(name = "所在地区")
    private String userArea;

    /** 角色Id */
    @Excel(name = "角色Id")
    private Long roleId;

    /** 推荐人Id */
    @Excel(name = "推荐人Id")
    private Long referenceId;

    /** 推荐码 */
    @Excel(name = "推荐码")
    private String referenceNum;

    /** 注册时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "注册时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date regTime;

    /** 微信小程序id */
    @Excel(name = "微信小程序id")
    private String openId;

    /** 0正常 1冻结 */
    @Excel(name = "0正常 1冻结")
    private String state;

    /** 账户总额 */
    @Excel(name = "账户总额")
    @ApiModelProperty(name = "账户总额")
    private BigDecimal amount;

    /** 冻结金额 */
    @Excel(name = "冻结金额")
    @ApiModelProperty(name = "冻结金额")
    private BigDecimal freezeDeposits;

    /** 累计提现 */
    @Excel(name = "累计提现")
    @ApiModelProperty(name = "累计提现")
    private BigDecimal withdrawal;

    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date startTime;

    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date endTime;

    private Long version;


    private String type;

    public Long getVersion() {
        return version;
    }

    public void setVersion(Long version) {
        this.version = version;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public Date getStartTime() {
        return startTime;
    }

    public void setStartTime(Date startTime) {
        this.startTime = startTime;
    }

    public Date getEndTime() {
        return endTime;
    }

    public void setEndTime(Date endTime) {
        this.endTime = endTime;
    }

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setProfileImg(String profileImg) 
    {
        this.profileImg = profileImg;
    }

    public String getProfileImg() 
    {
        return profileImg;
    }
    public void setNickName(String nickName) 
    {
        this.nickName = nickName;
    }

    public String getNickName() 
    {
        return nickName;
    }
    public void setGender(String gender) 
    {
        this.gender = gender;
    }

    public String getGender() 
    {
        return gender;
    }
    public void setPhone(String phone) 
    {
        this.phone = phone;
    }

    public String getPhone() 
    {
        return phone;
    }
    public void setUserArea(String userArea) 
    {
        this.userArea = userArea;
    }

    public String getUserArea() 
    {
        return userArea;
    }
    public void setRoleId(Long roleId) 
    {
        this.roleId = roleId;
    }

    public Long getRoleId() 
    {
        return roleId;
    }
    public void setReferenceId(Long referenceId) 
    {
        this.referenceId = referenceId;
    }

    public Long getReferenceId() 
    {
        return referenceId;
    }
    public void setReferenceNum(String referenceNum) 
    {
        this.referenceNum = referenceNum;
    }

    public String getReferenceNum() 
    {
        return referenceNum;
    }
    public void setRegTime(Date regTime) 
    {
        this.regTime = regTime;
    }

    public Date getRegTime() 
    {
        return regTime;
    }
    public void setOpenId(String openId) 
    {
        this.openId = openId;
    }

    public String getOpenId() 
    {
        return openId;
    }
    public void setState(String state) 
    {
        this.state = state;
    }

    public String getState() 
    {
        return state;
    }
    public void setAmount(BigDecimal amount) 
    {
        this.amount = amount;
    }

    public BigDecimal getAmount() 
    {
        return amount;
    }
    public void setFreezeDeposits(BigDecimal freezeDeposits) 
    {
        this.freezeDeposits = freezeDeposits;
    }

    public BigDecimal getFreezeDeposits() 
    {
        return freezeDeposits;
    }
    public void setWithdrawal(BigDecimal withdrawal) 
    {
        this.withdrawal = withdrawal;
    }

    public BigDecimal getWithdrawal() 
    {
        return withdrawal;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("profileImg", getProfileImg())
            .append("nickName", getNickName())
            .append("gender", getGender())
            .append("phone", getPhone())
            .append("userArea", getUserArea())
            .append("roleId", getRoleId())
            .append("referenceId", getReferenceId())
            .append("referenceNum", getReferenceNum())
            .append("regTime", getRegTime())
            .append("openId", getOpenId())
            .append("state", getState())
            .append("amount", getAmount())
            .append("freezeDeposits", getFreezeDeposits())
            .append("withdrawal", getWithdrawal())
            .toString();
    }
}
